Специалисты
Навыки: Typescript, Next.js, Redux, Redux Toolkit, RTK Query, TanStack Query, Apollo Client, GraphQL, Axios, i18n, JWT, WebSocket, ООП, SOLID, REST API, React Testing Jest, Vtest, Library, Storybook
Seniority: Senior
Образование и курсы
Высшее техническое образование
О себе
Самая интересная и/или технически сложная задача из опыта?
Реализация интеллектуальной фильтрации товаров в интернет-магазине.
Задача включала в себя адаптивную сортировку и комбинированную фильтрацию по множеству параметров (категория, бренд, цена, характеристики) с учетом производительности и SSR. Чтобы фильтрация оставалась моментальной при большом объеме данных, пришлось реализовать клиентский кеш и стратегию дебаунса. Кроме того, фильтрация была тесно связана с URL и SEO: каждый фильтр создавал уникальный индексируемый путь. Дополнительно нужно было корректно обновлять SSR-страницы без потери мета-данных и структуры страницы.
Куда хотелось бы развиваться: технически или в менеджмент?
Технически. Мне интересны задачи, связанные с глубокой проработкой архитектуры, улучшением производительности, качественным кодом и масштабируемыми решениями. Очень приятно изучать новые технологии и применять их, или улучшать уже существующий код, делать его более «чистым». Интересно попробовать себя в роли техлида проекта: код-ревью, построение архитектуры приложения, как части frontend, так и backend.
Какими задачами хотелось бы заниматься?
- Работа над необычными задачами
- Оптимизация производительности
- Улучшение читабельности кода
- Работа с архитектурой приложения
Какими задачами не хотелось бы заниматься?
- Работа со старыми технологиями, в рамках полного использования, а не перехода на современный стек
Интернет магазин для продажи бытовых товаров с возможностью дропшипинга
Роль на проекте: Frontend-разработчик Описание проекта: Интернет-магазин бытовых товаров, специализирующийся на товарах для дома. Платформа ориентирована на взрослых пользователей, которым важны комфорт, удобство выбора и надежность сервиса. Магазин предлагает широкий ассортимент продукции для дома, включая товары для кухни, уборки, уюта и организации пространства. Платформа, также позволяет блогерам и медийным личностям создавать креатив товара для продажи по ссылкам своим подписчикам. Команда проекта: Frontend (4 чел), backend (4-6 чел), SA(системные аналитики) (1 чел), BA (бизнес аналитики)(1 чел), DevOps(1 чел), QA (1-2 чел) Обязанности на проекте: ● Разработка адаптивной верстки для статических страниц с использованием ISR и SSG для оптимизации загрузки. ● Разработка компонента галереи товаров с увеличением изображений и переключением между фотографиями. ● Реализация системы сортировки и фильтров по категориям, брендам и характеристикам товара с динамическим обновлением списка. ● Интеграция сервиса Diginetica для поиска товаров, отображение истории запросов и результатов. ● Разработка функционала корзины с возможностью добавления, изменения количества и удаления товаров. ● Возможность оформления заказа на выбранные товары. ● Оплата через Юкасса. ● Интеграция API 5post для отображения пунктов выдачи на карте. ● Интеграция API Dadata для подсказок адресов, автоматический парсинг введенных данных. ● Использование Яндекс.Карт для выбора адреса доставки и определения геолокации пользователя. ● Разработка форм с валидацией при помощи React Hook Form и Zod. ● Работа с JWT-токенами для авторизации, использование uuid для идентификации сессии неавторизованного пользователя. ● Авторизация через смс-код и соцсети. ● Синхронизация данных корзины и списка избранного при авторизации пользователя. ● Разработка виджета для отправки ссылки на товар в соцсети и мессенджеры. ● Интеграция блока обратной связи через соцсети. ● Создание страницы с отзывами пользователей и возможностью оставления комментариев. ● Разработка страницы брендов с алфавитной сортировкой. ● Оптимизация загрузки изображений с поддержкой отложенной загрузки. ● Разработка демонстрации печатных изданий и возможность их просмотра в формате PDF внутри приложения. ● Изменение метаданных для поддержки SEO у товаров и категорий. ● Разработка карточек акций с таймером обратного отсчета до окончания акции. ● Работа со стендами демонстрации приложения заказчику. Личные результаты: ● Реализовал кастомную PDF-читалку, загружающую страницы по частям через range-запросы к API и отрисовывающую их с помощью виртуализированного скролла. ● Разработал алгоритм динамической фильтрации доступных значений (цвет, размер, производитель и т.д.) на основе выбранных параметров. Неактивные опции получали disabled, изображение товара обновлялось при изменении цвета. ● Внедрил прогрессивную гидрацию: интерфейс разделен на критически важные и второстепенные зоны: отрисовываются "скелетоны" для тяжелых блоков, затем асинхронно загружаются компоненты (lazy + suspense) после загрузки первичных данных. Использовал динамический импорт компонентов (next/dynamic) с отключением SSR там, где это допустимо. ● Принимал участие в код-ревью команды для поддержания общего стиля кода и оптимизации приложения в целом ● Занимался построением архитектуры приложения исходя из дизайна и требований совместно с командой бэкенда.
React, Next.js, TypeScript, SASS, Classnames, React Hook Form, Zod, Axios, React Query, Redux Toolkit, Jest, Playwright, Swiper, React Input Mask, React PDF, React Transition Group, markdown-to-jsx, Dadata, 5postAPI, react-yandex-maps, react-number-format, Apollo Client, JWT, Cookies, uuid
апрель 2024 - октябрь 2025 месяцев
Музей Московского Кремля
Роль на проекте: Frontend-разработчик Описание проекта: Создание сайта для крупного музея, с большим количеством разделов, включающего функции фильтрации контента и онлайн-покупки билетов, а также создание интерактивной карты музея. Команда проекта: Frontend (3-4 чел), backend (3-4 чел), SA(системные аналитики) (1-2 чел), BA (бизнес аналитики)(1 чел), DevOps(1 чел), QA (1 чел) Обязанности на проекте: ● Разработка лендинга с видеопревью и анимированными блоками. ● Интеграция с Apollo Client и GraphQL API с ленивой загрузкой ● Каталог экскурсий с фильтрацией, сортировкой и пагинацией ● Интеграция медиа-файлов через React Player ● Баннеры и анимации на главной с помощью Framer Motion ● Адаптивная верстка всех страниц (Chakra UI) ● Юнит-тестирование всех форм и ключевых страниц через Jest и RTL ● Тестирование взаимодействия и сценариев авторизации — Playwright ● Проведение код-ревью и улучшение архитектуры формы курсов ● Внедрение git hooks для линтинга и проверок перед коммитами Личные результаты: ● Оптимизировал производительность сайта, проведя рефакторинг кода, разделив сайт на критически важные секции и реализовав прогрессивную гидрацию, ленивую загрузку компонентов. ● Обеспечил доступность приложения для лиц с ограниченными возможностями. ● Написал тесты для ui-библиотеки проекта, которая в будущем будет использоваться командой.
React, Next.js, TypeScript, Redux Toolkit, React Hook Form, Yup, Apollo Client, React Player, Swiper, Chart.js, remark, react-chartjs-2, react-icons, react-select, Framer Motion, Auth0, Робокасса, Jest, Playwright, React Testing Library
июнь 2023 – март 2024 месяцев
Банковская платформа для кредитования
Роль на проекте: Frontend-разработчик Описание проекта: Внутренняя система банка, предназначенная для автоматизации и сопровождения процессов кредитования. Платформа позволяет сотрудникам эффективно обрабатывать заявки, управлять клиентскими данными, проводить скоринг, формировать решения и контролировать статус выданных кредитов. Система включает множество форм и интерфейсов, обеспечивающих пошаговый сбор данных, проверку, согласование и мониторинг заявок в соответствии с внутренними бизнес-процессами и регламентами банка. Команда проекта: Стрим более 100 чел. Frontend (2 чел), backend (2 чел), SA(системные аналитики)(3 чел), BA (бизнес аналитики)(3 чел), QA (1 чел), Lead, PO Обязанности на проекте: ● Разработка и поддержка нескольких приложений для нескольких уровней офисов(фронт, мидл, бек) ● Рефакторинг существующих приложений для новых конвейеров ● Создание новых репозиториев-фронтендов и интеграция в существующие системы по Module Federation ● Разработка согласно составленному ТЗ от бизнес и системного анализа ● Работа с несколькими версиями React и сопутствующими библиотеками ● Участие в командных мероприятиях(дейли, планирование, ретроспектива) ● Работа в рамках спринтов ● Участие в демо команды в рамках демо стрима ● Участие в кросс-ревью ● Поддержка адаптивности и редактируемого UI через Styled Components Личные результаты: ● Разрабатывал приложения для нескольких систем, старой и новой, React 16.8 и React 18, со всеми сопутствующими библиотеками ● Самостоятельно, согласно задачам, отрефакторил все сервисы нашего СУБО в канале бекофиса, приведя их к новым макетам и дорабатывая функционал ● Настроил тестирование и написал тесты - согласно плану улучшений качества кода фронтенда в стриме
TypeScript, React, React Router, Redux ToolKit, RTK Query, внутренний ui-kit(styled-components), Reatom, Axios, husky, Webpack, Babel, Webpack Module Federation, FSD
август 2020 - май 2023 месяцев