Senior Frontend developer

Москва, Россия
Сеньор
Информационные технологии • Разработка • Frontend • JavaScript • Node.js • Vue.js • Nuxt.js • Django • LESS • Pug • PostCSS • Stylus • SASS • PostgreSQL
Релокация • Удаленная работа • Работа в офисе
Опыт работы более 5 лет
от 250 000 ₽
Есть файл резюме (защищен)
О себе

На данный момент Senior Software Engineer.

Мои компетенции и опыт

Английский — профессиональный, Испанский — базовый.

1. Работаю фронтендером/фуллстаком с 2013 года, на первом месте работы приходилось параллельно с js писать код на python и django. Проработал там 5 лет, было много вёрстки, переделка спагетти кода на jq в модульный на vanilla js и БЭМ, затем ближе к концу некоторые части приложения (туристическая платформа) переписывал на vue. Также на этом проекте удалось ознакомиться с докером и завернуть приложение (и фронт и бэк) внутрь контейнеров для локальной разработки. Бэкэнд и апи для своих страниц писал сам. В проекте использоваться SSR на django, и под конец отдельные вьюхи делали как spa на нужен доступ к резюме

 

2. На втором месте работы (стартап платформа с различными тестированиями нацеленными на эмоциональный интеллект) — переписывал vanilla js код на полноценные vue spa app, изначально в проекте было около 7 типов тестовых механик, в несколько из них был вшит некий вывод результатов после прохождения, в виде диаграмм. Я построил приложение с 5ю роутами — login, tests, signup, results — login для доступа пользователей к проприетарным тестированиям, tests — собственно представление внутри которого крутятся компоненты самих тестирований в некой заданной последовательности, signup — форма регистрации для затягивания пользователей бесплатных тестирований в воронку продаж, и после её заполнения (если это бесплатные тестирования) — переход на results с выводом диаграм результатов на нужен доступ к резюме

Бизнесу было нужно чтобы в зависимости от названия субдомена ( нужен доступ к резюме , нужен доступ к резюме , нужен доступ к резюме ) система автоматом подтягивала нужную последовательность тестовых механик. Для этого первоначально на бэкэнде создавался json файл с именем субдомена, в котором лежал массив с названиями механик.

И при загрузке spa по этому адресу я делал запрос на бэк, подгружал этот файл, и формировал нужную последовательность прохождения механик после парсинга этого массива.

Механики были совершенно разные: тесты на внимание, эмоциональный интеллект, креативность, различные психологические показатели, где-то вопросники, где-то кроссворды, где-то нужно было кликать мышкой на разные изображения. У каждого была своя уникальная вёрстка и дизайн, к концу работы в проекте число механик выросло с 7 до 50ти.

При этом сохранение результатов было организовано так: есть база с нужен доступ к резюме и какой-то вьюхой на flask (её писал наш бэкэндер), и после прохождения тестирований я формировал объект с ключем - именем механики, и значением - объектом либо массивом значений, и кидал это на бэк, который сохранял всё в монго. Когда бэк отвечал 200, spa переключалось на вьюху с результатами, и она в зависимости от данных в localStorage (vuex) - рендерила простыню результатов, на подобие лендинга — для каждого типа механик был блок с диаграммами и выводом. При этом можно было зайти и посмотреть результат каждого прохождения по прямой ссылке (монго хранил каждое проходение под определённым хэшем, и в spa был роут наподобие .../results/<хэш из монго> который проверял localStorage и если не находил данных по этому хэшу — подтягивал его с бэкэнда.

Кроме того для некоторых заказчиков были необходимы кастомные дизайны тестирований и результатов, что также было реализовано в приложении. Также приложение было локализовано на несколько языков. Использовались юнит тесты на vue-jest

Также были реализованы необходимые для бизнеса механики регистрации / логина в систему.

Также на этом проекте мне удалось побыть тимлидом, и управлять командой из 3х junior разработчиков. Работали в трелло по скраму.

В конце моей работы в проекте написал полноценный бэкэнд на django и django rest framework — который позволял менеджерам через админку создавать конфигурацию тестирований для новых субдоменов, описывать последовательность тестирований, текстовые описания внутри каждого, и даже управлять дизайном.
 

3. Последнее место работы было в Ingram micro, это международная корпорация, занимающаяся дистрибуцией электроники и цифровых товаров, b2b, мы писали приложения для автоматизации бизнес процессов дистрибуции софтварных решений. Приложение на vue 2.7, vuetify в качестве ui фреймворка, ramda и функциональное программирование во всех компонентах, чистый jest для тестирования (т.к. почти везде были чистые функции это было просто сделать), и cypress для интеграционных тестирований. Приходилось писать много компонентов для внутренних интерфейсов и одной из основных задач был уход от vuetify, и переезд на vue 3, для чего пришлось сделать аналоги большинства vuetify компонентов формы на чистый vue в нашем кастомном дизайне, и затем уже переписывать куски приложения на vue 3. Был очень чёткий процесс — планирование и разделение задач поступающих от PMов между командами, затем на планнингах разбивали эти задачи на подзадачи внутри команды, определяли часы, трекали всё в джире и конфлюенсе, проектировали решения, проводили дизайн ревью перед началом работ, и затем уже выполняли фичи, писали юнит тесты на jest и интеграционные на cypress, после чего было демо фич, правки, и затем финальное внесение их в мастер ветку. Код ревью проходил в bitbucket, в нём участвовала вся фронтовая команда, и был очень строгий код стайл, заточенный под функциональное программирование.

Дизайнер создавал макеты в figma, а разработчики его оттуда забирали. Активно работали с нейросетками.

Также пришлось сделать одну внутри-корпоративную интеграцию на nuxt. Нужно было регистрировать пользователей через кастомную форму входа, и потом рендерить некие их данные из бд на страницу с информацией.

Первый год работал из РФ, затем два года — в испании, куда нас релоцирновали после закрытия офиса в мск. Все процессы происходили на английском языке. Испанский хорошо выучить не успел — но базовый уже есть. Контракт был на 2 года, он закончился, а нашу команду после IPO расформировали, собственно потому я решил вернуться в РФ.

 

4. Параллельно с этими работами были ещё сайд проекты — обучал вёрстке в HTML-академии, и писал приложение для выставки в музее истории Гулага, для запуска на сенсорных интерактивных панелях. Для последнего использовал vue и nuxt 2й версии. Сервер на нужен доступ к резюме и express отдавал csv файлик с расстрельными списками (фото, даты жизни, биография и тд), и csv файлик сотрудники музея периодически обновляли. Всё было обёрнуто в докер контейнер для простоты.

А spa на nuxt отображало страницу с формой fuzzy-поиска по этому списку, и страницу конкретного профиля человека. Было нестандартное разрешение экрана и необходимость поддержки touch функций.

 

5. Также делал два пет-проектика на nuxt 2, и сейчас пишу для подруги сайт психолога-консультанта на nuxt 3.

 

Про свои личные качества — много развивал soft навыки, участвовал в течение нескольки лет в групповой психотерапии, люблю групповые командные активности. Очень социальный и коммуникабельный, люблю когда внутри команды много шейринга знаний, взаимодействия, в идеале — парный кодинг, и люблю встречаться с коллегами в живую при возможности.



Есть файл резюме (защищен)


Интересные кандидаты