Frontend React Developer

+375 (25) 7112860 aleksey.putik@yandex.com tg: aleksey_putik Минск Не готов к переезду, не готов к командировкам Опыт работы — 5 лет 2 месяца Сентябрь 2022 — Июль 2025 LightPoint Global Frontend-разработчик EMR-система Система для связи пациент-заказчик-доктор. Доктора регистрировались через заказчика, указывая специальность, услуги и т.д. Пациенты регистрировались на платформе, указывая необходимые для них услуги. Платформа подбирала для пациента подходящего доктора и позволяла взаимодействовать с ним. Функционал: - Регистрация, авторизация(пациенты самостоятельно регистрировались, докторов регистрировал заказчик). - Видеозвонки между пациентами и докторами. - Возможность для пациента пройти базовое тестирование по здоровью до встречи с доктором. Доктор закреплял необходимый тест за пациентом, пациент проходил его, доктор его смотрел и назначал лечение/сеанс/звонок. - Тесты для пациента имели статусы(pending, in progress, done). Доктор закрепил тест = pending, пациент заполнил хотя бы одно поле = in progress, пациент заполнил обязательные поля и нажал кнопку завершения = done. Было реализовано автосохранение в базу через условленный промежуток времени либо при закрытии теста. - Календарь, где можно было видеть предстоящие звонки и подключаться к ним. - Возможность оплаты онлайн. Мои обязанности: В основном на проекте я занимался разработкой функционала, отвечающего за тестирование пациентов, личный кабинет администрации и единообразие визуала платформы. Помимо этого, занимался рефакторингом уже существующей кодовой базы и, так как я отвечал за единообразие визуала, разработкой переиспользуемого UI-кита. Работал в команде с сотрудниками из стран СНГ. Работа была устроена по методике Scrum со спринтами по 2 недели. Созванивались по пн, ср, пт для обсуждения выполненных задач и обсуждения дальнейших. В конце каждого спринта у нас была ретроспектива проделанной работы и планирование следующего спринта. Работали по git flow. Достижения: - Разработал совместно с дизайнером личный кабинет администрации. В личном кабинете администрация могла создавать новые аккаунты для докторов либо удалять аккаунты пользователей любой роли, редактировать функционал и статусы опросов и создавать новые опросы. - Реализовал отдельную регистрацию и авторизацию: для пользователей — по общедоступной ссылке, где была стандартная общепринятая форма в виде почты и пароля, для докторов — через личный кабинет администрации, где администратор создавал новый аккаунт с почтой, указанной доктором, после чего доктор устанавливал пароль в окне, открывающемся после перехода по ссылке, указанной в письме на почте. - Внедрил библиотеку surveyjs для реализации тестирования пациентов. Изучил, какие библиотеки существуют для удобного и визуально приятного создания опросов. Остановил свой выбор на surveyjs из-за обширного выбора возможных полей, удобства для изменения/расширения и самое главное - возможности удобного создания опросов не с помощью заранее созданных JSON-файлов, а прямо в приложении, т.е. сами клиенты могли создавать необходимые для них опросы. - На основе surveyjs (пункт выше) совместно с заказчиком и дизайнером разработал опросы по базовым медицинским направлениям и страницу для создания кастомных опросов, которой могла пользоваться администрация. - Реализовал частичное выполнение опроса и возможность для доктора, назначившего опрос, видеть статус и результат прохождения. - Интегрировал в проект i18next с возможностью перевода на несколько разных языков, вынес и структурировал локализации по разделам проекта для упрощения навигации по переводам, интегрировал lazy-loading локализаций чтобы ускорить первичную загрузку сайта, у пользователя подгружалась нужная ему локализация, а остальные скачивались при необходимости с помощью i18next-http-backend. - Разработал кастомные UI-компоненты(табы, кнопки, списки, таблицы, разделители, модальные окна, карточки пользователей и т.д.), которые в дальнейшем использовались по всему проекту, существенно ускоряя процесс разработки и унифицируя внешний вид продукта. - Создал базовый компонент для опросников, который так же в дальнейшем регулярно использовался и упрощал работу новым разработчикам, убирая необходимость знакомиться с библиотеками, используемыми для реализации. - Провёл глобальный рефакторинг проекта, в процессе которого итеративно перевёл проект на FSD (Feature Sliced Design) подход, выделил бизнес-сущности, вынес в папки бизнес-сущностей слайсы Redux Toolkit, вынес роутинг на слой pages, декомпозировал крупные компоненты на фичи, entity и виджеты. В результате получилось значительно упростить последующую разработку и расширение проекта за счёт чётко структурированноло разделения частей проекта на слои. - С помощью рефакторинга также избавился от лишних useEffect-ов, добавил useCallback-и, useMemo, убрав тем самым ненужные ре-рендеры страниц. - Реализовал регистрацию и авторизацию на основе JWT: access-токен сохранял в куки с условленным max-age, refresh-токен хранился на сервере и в http-only куках, по истечении max-age слался запрос на обновление access-токена. Проверка валидности токена происходила при каждом запросе к серверу, что было реализовано через baseQuery, который использовался в разных api. Разные апишки были обусловлены тем, что одни данные брались с одного апи, другие - с другого. - Сформировал полноценную документацию для UI-кита в Storybook, охватывающую как визуальные компоненты, так и их поведение в разных состояниях. Описал пропсы, варианты использования, ограничения и лучшие практики для каждого компонента. Добавил интерактивные playground-сценарии, что упростило onboarding команды и ускорило внедрение UI-кита в новые фичи. Поддерживал актуальность документации при доработках и рефакторинге компонентов. - Построил внутренние соглашения по именованию, структуре директорий и оформлению PR — снизил фрагментацию в кодовой базе. - Регулярно взаимодействовал с QA, дизайнерами и бэкендом — наладил сквозную коммуникацию в команде. Июнь 2020 — Август 2022 Itransition Frontend-разработчик Система контроля допуска сотрудников к потенциально опасным объектам Система, позволяющая сотрудникам компании регистрировать заявки на получение необходимых допусков и оборудования для работы на потенциально опасных объектах (нефтяные вышки, корабли, заводы и т.д.). Функционал: - Карта с активными кликабельными зонами, по нажатию на которые предоставляется возможность выбрать необходимые оборудование и допуски. - У работников есть аккаунты. У каждого работника в аккаунт есть специализация, уровень навыков, возраст, уровень физической подготовки. Соответственно у каждой зоны на каждом объекте есть те же минимально допустимые факторы. Т.е. работник не может просто взять и на рандомную зону запросить допуск. - Работники определенной категории (руководитель) могут менять характеристики работников по необходимости - Администраторы могут менять минимально допустимые факторы для работы в какой-либо зоне объекта. Мои обязанности: В рамках проекта отвечал за ключевые участки фронтенда — интерактивные карты объектов и раздел аналитики. Отвечал за проработку бизнес-логики зон допуска, отрисовку и взаимодействие с пользователем, а также реализацию личного кабинета для администратора. Параллельно занимался улучшением архитектуры, унификацией визуальных компонентов, внедрением FSD-подхода и оптимизацией производительности. Принимал участие в онбординге новых разработчиков, помогал с погружением в проект, писал документацию и выступал внутренним ментором. Работал с англоязычной командой и заказчиком из Ирландии. Работали по git flow, по методике Kanban. Созванивались каждое утро для обсуждения текущих задач, а раз 2 недели - для подведения итогов и планирования предстоящей работы. Достижения: - Реализовал интерактивные карты объектов (в виде двоичной системы координат, где у каждой зоны есть свои координаты по (x : y) и размер, при наведении на зону она подсвечивается, при нажатии - открывается модальное окно с информацией о зоне и выбором оборудования и работ, которые планирует делать пользователь на зоне) совместно с дизайнером. - Разработал раздел с аналитикой для каждого объекта: в какие зоны объекта кто, как часто и по какой причине запрашивал доступ, что при этом из оборудования требовалось. - Разработал с чистого листа личный кабинет администрации, где был доступ к изменению объектов (убрать/добавить зоны), зон (требования для запроса допуска) и сотрудников (специализация, уровень навыков, возраст и т.д.). - Приблизил архитектуру проекта к FSD, разбив существующие компоненты на соответствующие им фичи, виджеты и бизнес-сущности. Тем самым упростил дальнейшее расширение и разработку проекта. - Разработал базу визуальных компонентов (карты объектов с возможностью указания разных размеров карты и координат различных зон на объектах, таблицы, списки, модальные окна, табы, разделители), упростив тем самым разработку для фронтенд-отдела и унифицировав внешний вид приложения. - В рамках задачи по рефакторингу занимался оптимизацией приложения, реализовал как базовые вещи вроде декомпозиции с избавления от избыточных useEffect'ов, внедрения мемоизации — useCallback, useMemo, React.memo, так и более сложные оптимизации вроде внедрения возможности включить виртуализацию в таблицах из UI-кита и оптимизации селекторов из Redux Toolkit. - Разработал кастомный компонент для визуализации графиков статистики, который в дальнейшем использовался в других проектах. - Провел онбординг 2 разработчиков. Показывал, что и как устроено в документации, помогал локально запускать проект, наводил на решение задач при возникновении трудностей, подсказывал, к кому и по какому вопросу стоит обращаться. - Создал подробную документацию реализованного мной функционала в сonfluence, упростив понимание использования для новых разработчиков и тестировщиков. CRM-система Система для пансионатов. Заказчик выступал в роли связки между пансионатами и их клиентами. Функционал: - Пансионаты регистрировались через заказчика, клиенты - через открытую ссылку. - Обширная система фильтрации пансионатов. - Не менее обширная система фильтрации комнат. - Возможность для пансионатов создания и редактирования персональной страницы. - Возможность выбора свободной комнаты на карте с описанием и фото при нажатии. - Возможность оплаты онлайн. Мои обязанности: На проекте занимался доработкой существующего функционала и реализацией нового: от улучшения системы бронирования и визуальной настройки страниц пансионатов до внедрения архитектурных и инфраструктурных решений (FSD, линтинг, библиотека компонентов). Параллельно участвовал в онбординге новых сотрудников и стандартизации процессов в команде фронтенда. Работал с англоязычной командой со всего мира и заказчиком из США. Работали так же по git flow и методике Kanban. Процессы, в целом, были ровно такими же, как и на первом проекте. Достижения: - Совместно с дизайнером и заказчиком разработал и внедрил возможность для пансионатов иметь полноценный контроль над внешним видом своей страницы на платформе: описание, галерея, фоновое изображение/цвет, размер и цвета шрифтов. Для этого была внедрена библиотека craftjs, т.к. она больше аналогов подходила по функционалу и возможностям. - Совместно с дизайнером разработал календарь бронирования наподобие гугл-календаря, где пансионаты могли видеть даты бронирования каждой комнаты, а пользователи - свои даты въезда/отъезда. - Предложил и постепенно перевел проект на архитектуру, приближенную к FSD. Для этого декомпозировал компоненты на фичи, сущности и вьюшки, упростив тем самым дальнейшее расширение проекта. - Совместно с девопсом внедрил проверки линтера при сборке, тем самым улучшив качество и читабельность кода. - Разработал базу визуальных компонентов (таблицы, табы, модальные окна, компонент карты пансионата, компонент комнаты), упростив тем самым разработку для фронтенд-отдела и приведя внешний вид приложения к единообразию. - Создал внутренние инструкции по запуску/отладке проекта, ускорив адаптацию новых сотрудников. - Провел онбординг нового разработчика: рассказал, кто за что отвечает, к кому по какому вопросу стоит/не стоит идти, помогал разобраться в функционале и бизнес-логике приложения, первое время подсказывал, как выйти на решение задач, с которыми возникали трудности. - Организовал чистку и стандартизацию UI-компонентов, устранив дублирование и повысив переиспользуемость кода. React Redux Toolkit RTK Query JavaScript HTML HTML5 CSS3 Git UI UX TypeScript Java Script JS TS Web Design Web-дизайн React Native React.js Scrum Agile Kanban Английский язык


alekseyputikalekseyputik

7

0
2025-08-12

Похожие резюме

React frontend developer

Нахожу в поиске стартапа. Основной стек: React, TypeScript, TanStack Query, React Hook Form, Vite, Vitest, React Testin...

18
0
Frontend Developer (React, WebGL)

Опыт разработки 4+ лет Стек: TypeScript, React, PhaserJS, PIXI.js, ThreeJS, MobX, Zustand, Jest, Vite, SSE, WebSockets, ...

15
0
Frontend Developer

Frontend Developer, имею опыт работы больше года. Есть знания HTML, CSS, JS&TS, Tailwind Css, Vue3, Nuxt3, Pinia, Sass ...

16
0
Frontend-developer (React, Next.js)

Локация: РФ Формат работы: удаленно Занятость: part-time или full-time, гибкий график Коммерческий опыт: 1 год 6 мес Eng...

9
0
React(Next) frontend developer

Ищу поиск ЛЮБОГО стартапа который поможет улучшить свои навыки, применить их на практике, НЕ ВАЙБ КОДЕР, хочется около 2...

5
0
Frontend Developer

Я окончил обучение по специальности frontend-разработчик, подробная информация находится в моём резюме, а также примеры ...

10
0