Senior Frontend developer
Москва, РоссияСеньор
Релокация • Удаленная работа • Работа в офисе
Опыт работы более 5 летот 250 000 ₽
Опыт работы более 5 летот 250 000 ₽
Есть файл резюме (защищен)
Короткая ссылка: gkjb.ru/gydU
О себе
На данный момент 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 навыки, участвовал в течение нескольки лет в групповой психотерапии, люблю групповые командные активности. Очень социальный и коммуникабельный, люблю когда внутри команды много шейринга знаний, взаимодействия, в идеале — парный кодинг, и люблю встречаться с коллегами в живую при возможности.
Есть файл резюме (защищен)
Интересные кандидаты
Мы используем куки, потому что без кук наш сайт не работал бы, другие сайты не работали бы, да и вообще весь
интернет не работал бы
