Skip to content

Instantly share code, notes, and snippets.

@7rulnik
Created July 28, 2020 16:16
Show Gist options
  • Star 18 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save 7rulnik/6eb13f1f63abdfb0d17101c4df46db59 to your computer and use it in GitHub Desktop.
Save 7rulnik/6eb13f1f63abdfb0d17101c4df46db59 to your computer and use it in GitHub Desktop.
cv-july-2020.md

Кто я?

Привет! Меня зовут Семирульник Валентин. Мне 25 лет. Живу в Питере.

Учился в Университете Технологии и Дизайна на информатике и вычисилительной технике. Бросил в начале 3 курса.

Я специализируюсь на фронтенде 7 лет, но не брезгую и смежными областями. Ближе всего мне автоматизация и CI/CD. Люблю тулинг. Мне кажется, что он по-своему прекрасен.

Аутсорсу предпочитаю работу в продукте. Круто, когда разрабатываешь то, чем сам можешь пользоваться. Это добавляет энтузиазма и мотивации.

Коротко про технологии:

  • тайпскрипт нравится больше, чем флоу;
  • не люблю точки с запятой;
  • export default — это ошибка;
  • предпочитаю реакт;
  • вебпак — это просто;
  • не вижу ничего сложного в серверном рендере;
  • раздражают споры про перфоманс CSS-in-JS;
  • не пугает интерактивный ребейз;
  • уважающие себя люди не пользуются битбакетом;
  • хочу изучить Go.

Где я работал?

Информация дополнялась годами и какие-то ссылки могут не работать или быть неактуальными.

Январь 2014 — Сентябрь 2014

Мелкий фриланс, просто вёрстка.

Октябрь 2014 — Февраль 2015

Работал в Красной Гвардии. Занимался в основном лэндингами, меликими правками. Последним проектом был сайт компании ВПраве (вёрстка, JS, обработчик формы на PHP). Ушёл из компании, т.к. стали задерживать зп и начались проблемы. В итоге компания просуществовала до лета и закрылась с долгами.

Февраль 2015 — Апрель 2015

Разрабатывал проект Гильдии Игры дизайнеров. Вёрстка, обработчики форм, загрузка файлов. Проектная работа.

Апрель 2015 — Октябрь 2015

Контракт с Фогеймом. В основном небольшие странички под эвенеты, акции и патч-ноуты. Здесь впервые столкнулся с Babel и реактом.

  • Табличные рейтинги на основе существующей кодовой базы, переделал компонент поиска.
  • Карта осад — здесь все довольно просто, но это был первый настоящий опыт с реактом и серверным API.
  • Битва генералов. Юзер мог выбрать команду, смотреть живые графики с ежедневной статистикой и увидеть итоги ивента.

Не стал продлевать контракт, т.к. хотел более стабильной занятости и, как следствие, стабильной зп.

Октябрь 2015 — Декабрь 2016

Сделал тестовое для 4xxi, но отказал им. Ещё одно для Злых Марсиан — не смогли договориться с заказчиком.

Работал в Рублёвка.ру: делал сложную карусель на реакте, выкидывал Immutable из формы сортировки, делал админ-панель с помощью redux-form.

Декабрь 2015 — Апрель 2016

Работал в Студии Михаила Кечинова. Очень много вещей не соответствовало моим представлениям о фронтенд-разработке, и занимался совсем не тем, чем хотел. Рубисты, которые передают данные через window, сами пишут JS, Sprockets вместо нормального тулинга, вёрстка на бутстрапе и прочие радости жизни. Как следствие — выгорание.

Постепенно старался влиться в опенсорс сообщество. Написал плагин для PostCSS и немного контрибьютил в react-boilerplate

Пробовал GraphQl и Relay в рамках пары тестовых.

Апрель 2016 — Июль 2018

Стал ведущим фронтендером в Купибилет.ру. Это был мой второй и самый удачный продукт.

Я пришел на позицию обычного разработчика, от старой команды оставалось 2 человека. Через 3 месяца был повышен до фронтенд-лида. За 2 года собрал команду из 6 фронтендеров.

В мои задачи входили:

  • планирование и работа над редизайном;
  • продумывание архитектуры;
  • код-ревью;
  • найм (собеседования и ревью);
  • планирование спринтов.

Хотелось расти куда-то дальше/выше, но оказалось некуда.

Из достижений:

  • вытянули проект из глубочайшего легаси (react@0.10 и гора sass);
  • гибридиный рендер из HBS и реакта на клиенте перевели полностью на SSR реакт (redux-saga, s-c, react-loadable);
  • немного поработал с Redis (на нём делали кэш для SSR);
  • сделали редизайн основного флоу пользователей;
  • сделал систему аналитики для небольших аб-тестов на Elasticsearch и grafana (чуть позднее ребята поменяли эластик на кликхаус)
  • настроил CI/CD с помощью Gitlab, Docker Swarm и Traefik — каждая ветка раскатывалась на свой поддомен и доступна для демонстрации/тестирования;
  • запускали микро-сервисы (например, популярные направления) силами фронтенд-команды без привлечения бэкэндеров;
  • сделали свой UI-кит (так же в организации есть немного другого опенсорса);
  • предложил и реализовал пару продуктовых решений (например, упростил отображение выдачи авиабилетов)
  • внедрил скрам с двухнедельными спринтами — мы испытывали проблемы с беклогом (нам не хватало реальных задач, хотя планов по развитию было много) и переход позволил больше времени уделять планированию, мы стали заранее понимать, что у нас будет свободные руки на какие-то экспериментальные задачи или техдолг;

Сентябрь 2018 — Февраль 2019

Работал в osome.com. Поддерживал существующие и разрабатывал новые модули дешборда для внутренного использования. Интересный опыт, т.к. при работе над инхаус-проектом какие-то оптимизации становятся не столь критичными, как при работе над проектом для публичного использования.

В январе компания приняла решение консолидировать разработку в Москве. Предложили переезд — отказался.

Апрель 2019 — Текущее время

Фронтенд-архитектор в Альфа-Банке. Моя команда из 30 фронтендеров занимается основным сайтом — те страницы, которые позволяют пользователям стать клиентом банка. Специфика проекта: большое количество контентых правок, изменения ставок по ипотеке, разные условия в разных регионах и т.д. В связи с этим нам понадобился инструмент, позволяющий без разработчиков собирать страницы/вносить правки. Таким образом сайт состоит из бекенда, который присылает список компонентов и их настройки, рендерилки, которая данные превращает в html и CMS для управления этим контентом.

В мои обязанности входит проектирование клиентской инфрастуктуры, проработка API, техническая помощь фронтендерам и их развитие, модернизация тулинга, поиск узких мест, различиные оптмизации процессов и кода.

Результаты за 1.5 года:

  • внедрил раздельные бандлы для старых и новых браузеров — сэкономили 9% от бандла;
  • сделали сжатие через brotli — смогли сэкономить ещё 30% на ассетах;
  • нашёл утечки в серверном рендере (приложение рестартилось каждые 4 часа);
  • ускорили пайплайны двух проектов на 19 минут (45%) и 2 минуты (10%);
  • рефакторил core-слой, отвечающий за рендер страниц — модуль стал более простым и предсказуемым;
  • упростил API для получения страниц — ответ был чересчур сложными структурами данных, получилось сэкономить и на размере запроса и упростить формирование и разбор ответа;
  • сделал временнное решение для управления контентом страниц — только придя в команду, столкнулся с проблемой отстутсвия инструмента для управления контентом. За пару недель получилось реализовать инструмент, которым разработчики пользуются больше года;
  • проектировал CMS для управления страницами — учитывая предыдущий пункт, нужно было в короткий срок сделать MVP для управления контентом, которым могли бы пользоваться и контент-менеджеры. Я спланировал основную архитектуру, выбрал библиотеки, ревьювил и подсказывал узкие места;
  • помог командам сформировать недельный релизный цикл и делегировал дежурство на разработчиков;
  • перевёл проект на yarn v2;
  • менеджу внедрение HTTP2 и CDN;
  • продумал и реализую архитектуру, позволяющую 7 командам релизиться независимо друг от друга;
  • внедряю Sentry.

На текущий момент я не нахожусь в активном поиске, но открыт к предложениям. Мне не хватает продуктовой эмпатии, и из-за этого я не чувствую удовлетворённости/наслаждения процессом и приходится из себя «выдавливать» производительность.

Помимо работы:

  • трижды выступал на SPB Frontend
    • доклад про обновление зависимостей и борьбу с легаси
    • доклад про конфигурирование чанков вебпака;
    • Проклятие обратной совместимости — как я делал разделение на ES5/Modern бандлы
  • выступал на FrontHub с докладом о том как быстро и дешёво построить CI/CD;
  • вёл неделю в https://twitter.com/jsunderhood хоть и не очень удачно (за неделю ушел в -5 фолловеров).

Keywords

Здесь описаны технологии, с которыми мне довелось поработать за это время.

  • HTML/CSS (семантично, адаптивно)
  • JS от ES5 и выше
  • Flow
  • Typescript
  • CSS-in-JS (styled-components)
  • Препроцессоры: less/sass/stylus/SugarSS
  • PostCSS
  • БЭМ, CSS-модули
  • Grunt/Gulp/webpack.
  • Pug(jade)/Slim/Handlebars
  • React (react-router, react-virtualized, downshift, react-select, react-loadable и др.)
  • Redux
  • GraphQL/Apollo
  • node.js
  • express/koa/micro
  • ESLint (мне нравится этот код-стайл)
  • yarn, npm, Yeoman, bower
  • Git
  • Модули: CommonJS/AMD/ES2015
  • Сборка через: Browserify, webpack, rollup
  • Юнит-тесты через Jest и AVA, Enzyme, code coverage
  • E2E тесты с nightmare.js и puppeteer
  • CI (Travis, Gitlab CI, Bitbucket pipelines)
  • Docker, Swarm, Traefik
  • nginx
  • Elasticsearch, Redis
  • Grafana
  • Gatsby, Ghost, Jekyll
  • Фотошоп/Sketch

Контакты

Семирульник Валентин

Телефон: +7 999 247-17-45
Telegram: v7rulnik — предпочительный способ связи
Skype: v7rulnik@hotmail.com
Email: v7rulnik@gmail.com
VK: https://vk.com/semirulnik
Twitter: https://twitter.com/7rulnik
GitHub: https://github.com/7rulnik
Medium: https://medium.com/@7rulnik

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment