😎 Что я знаю и умею в профессии
В веб-разработку я пришел вполне предсказуемо, после получения высшего образования по специальности экономическая кибернетика. Это был сплав из дисциплин по программированию, экономике, математическому анализу и моделированию.
Программирование в университете преподавалось на протяжении всех пяти лет. Первый курс начинался с ассемблера, а потом был языкк С++ и проектирование баз данных. Кафедра была прогрессивной и мой научный руководитель дипломной работы вовсю продвигал нейронные сети, поэтому мой дипломный проект работал с обученной нейронной сетью, а писал я его на C++.
Программирование тогда меня не сильно захватывало, больше всего в нем нравилось проектировать интерфейсы для программ, которые мы создавали в GUIRADBorland C++Builder , а, вот, веб-разработка и в частности фронтенд, которых немного касались на последнем курсе, пришлись мне по душе и уже тогда я смастерил первый интернет-магазин на базе CMSJoomla для своего знакомого.
После университета в 2008 году, проработав несколько месяцев инженером-электронщиком, я благополучно уволился и решил строить карьеру в IT. В начале 2009 года устроился в небольшой, недавно сформированный отдел веб-интеграции одной крупной компании, по созданию сайтов на CMS 1С‑Битрикс. О шаблонизации на этой CMS я написал статью в своем старом блоге, который активно вел в то время. В первые месяцы работы я приобрел начальную практическую базу в верстке, основах JavaScript, PHP-шаблонизации и окончательно уверился в том, что хочу связать свою профессиональную карьеру с вебом.
Сейчас, спустя 13 лет, я все еще продолжаю заниматься версткой и изучением веб-стандартов, но немалую часть отъедает проектирование интерфейсов, программирование, системная аналитика тимлидинг и управление проектами.
🧢 Верстка и проектирование интерфейсов
Верстаю адаптивно, семантично и доступно. Если есть только десктопная версия макета, могу самостоятельно адаптировать ее под мобильные ширины на всех брейкпоинтах и наоборот. Отдаю приоритет подхoду Mobile First. Тесно работаю с дизайнером, помогаю улучшать макет и проектировать сложный UX. Использую HTML-теги по назначению и не страдаю диватозом: для шапки сайта — <header>
, для футера — <footer>
, для навигации — <nav><ul><li>
. Знаю способы обеспечения доступности в вебе и применяю их на практике (WCAG 2.1): альты у изображений там где нужно, стандарт WAI-ARIA, читабельность разметки скринридерами, контрастность, области клика.
Люблю компонентный подход и реиспользуемость кода. Использую методологию БЭМ. CSS пишу в терминологии SCSS и активно пользуюсь всеми преимуществами этого препроцессора. Стараюсь любой макет приводить к дизайн-системе: на первом этапе обязательно обсуждаю все с дизайнером, а если не удалось, — систематизирую в процессе кодинга.
Верстаю адаптивные HTML-письма для почтовых рассылок. Есть опыт верстки не только на фреймворках MJML и Foundation, но и без их синтаксического сахара — живьем таблицами и инлайновыми стилями.
Проектирую интерфейсы. Работаю с интерфейсами, от простых лендиногв до сложных внутренних административных панелей. Проектирую и прототипирую. Изучаю проблему, провожу UX-исследования, подключаю знания, многолетний опыт, здравый смысл и нахожу лучшее решение.
Занимаюсь UX-писательством. Корректирую и улучшаю тексты в интерфейсах. Когда вижу в макете, что текст интерфейса можно улучшить, предлагаю подходящее решение. Люблю информационный стиль подачи материала, совершенствуюсь в редактуре: читаю книги и статьи по этой теме, практикуюсь в написании статей. Убеджен, что любой человек, который хотя бы что-то пишет для веба и не только, — обязан прочитать книгу «Пиши, сокращай», а лучше все, о чем говорит Максим Ильяхов.
Оптимизирую скорость загрузки страниц. Подбираю подходящие форматы графики с фолбеками для тех браузеров, которые не поддерживают формат полегче. Использую подходящие алгоритмы сжатия для растра, работаю с SVG там, где не нужен растр. Применяю подход critical CSS, если важна быстрая загрузка первого экрана. Подключаю ресурсы в нужном порядке. Оптимизирую шрифты: включаю только нужные глифы, использую подходящие форматы. Профилирую клиентскую оптимизацию в DevTools.
Программирую на JavaScript, знаю его на базовом уровне, например, могу запрограммировать веб-компонент с использованием синтаксического сахара JS-классов, но не пишу бизнес-логику. Такие знания позволяют мне собирать основные элементы лейаута страниц или работать в связке с JavaScript-программистом над сложными компонентами интерфейса, построенного на разных JS-фреймворках и библиотеках: jQuery, Angular, Vue.js, React и других. В рамках кросс-функциональости в Scrum-команде, могу брать на себя функцию JS-программиста и разрабатывать какую-то не rocket science логику.
Работаю с системой сонтроля версий. Всегда пишу код с git: GitHub, GitLab или Bitbucket. Всегда инициирую ревью своего кода и провожу ревью кода коллег.
Каждый день использую инструменты: системную консоль, Midnight Commander, Google Chrome DevTools, PhpStorm, VS Code, Figma, Gulp, Webpack, Docker, Linux, MacOS.
Постоянно учусь. Мир веб-технологий очень быстро меняется, веб-стандарты находятся в перманентном развитии, разработчики браузеров с каждым релизом выкатывают новые фичи и поддержку новых стандартов, угнаться за одними изменениями только в верстке трудно, не говоря уже о JavaScript-библиотеках и вообще фронтопсу. Чтобы быть в курсе новых технологий и не терять хватки, я читаю книги и профильные ресурсы по веб-технологиям, программированию, проектированию интерфейсов, редактуре, дизайну и типографике. Смотрю лекции и митапы конференций.
⛑️ Шаблонизация и бэкэнд
Хорошо знаю WordPress. Сделал несколько проектов на этой CMS:
- верстал и программировал темизацию на PHP;
- устанавливал и настраивал плагины;
- программировал дизайн-блоки WYSIWYG-редактора для контент-менеджмента;
- программировал логику с помощью кастомных полей API WordPress.
Могу самостоятельно сделать контентный сайт со сложной структурой разделов или блог, запрограммировать логику на кастомных полях и другого API WordPress. Имею опыт создания и управления блогами, журналами и корпоративными сайтами: от технической части до управления контентом на уровне работы с редакторским составом.
Знаю платформу Shopify. Могу запрограммировать тему для магазина, знаю основные принципы работы Shopify API, плагинов и языка шаблонов Liquid. Есть опыт работы с Liquid-шаблонами темизации справочной системы ZenDesk.
🎩 Управление проектами и системная аналитика
Общаюсь с клиентами на уровне Project Manager. Управляю небольшими проектами и командой. С soft skills все в порядке. Последнее время практически во всех проектах я выполняю функции менеджера проекта и системного аналитика:
- провожу исследования перед выбором инструментов разработки;
- продумываю структуру проекта, пишу технические задания и документацию;
- управляю процессом разработки проекта с нуля и до запуска на стороне клиента;
- провожу обучение сотрудников и веду проект в рамках технической поддержки.
Использую менеджер задач Jira. Веду в нем все задачи, слежу за статусом, оформлением и комментированием задач для понимания прогресса по проекту. Есть опыт работы по Scrum-фреймворку в Agile.
Знаю подход JTBD и СJM. Занимался маркетинговыми исследованиями с помощью этих методологий.
Знаю английский на уровне intermediate, это позволяет изучать документацию, читать профильные статьи и вести переписку с иностранными клиентами.