Горюшкин Артем
Senior Frontend Developer
Обо мне
Frontend-инженер с 7+ годами опыта. Работаю с TypeScript и React, делаю сложные интерфейсы с данными: таблицы, формы, синхронизацию состояний, обновления в реальном времени.
Люблю наводить порядок в хаосе. Есть набор разрозненных экранов - превращаю это в понятную систему: общий слой данных, единые правила поведения интерфейса, повторно используемые конфигурации. За счет этого новые фичи появляются быстрее, а старые не ломаются при каждом изменении.
Много работал с корпоративными системами высокой нагрузки. Там быстро становится видно, где архитектура не держит нагрузку и по коду, и по людям. Поэтому часто лезу глубже: проектирую решения, участвую в обсуждениях, проверяю изменения.
Пишу тесты: Jest, Vitest, React Testing Library.
Навыки
- Основной стек: TypeScript, React, MobX
- Дополнительно: Redux, Next.js, WebSocket
- Архитектура: Feature-Sliced Design (FSD)
- Тестирование: Jest, Vitest, React Testing Library
- Backend: Node.js, Express, Fastify
- Frontend: Material UI, Ant Design, Core UI
- Стилизация: SCSS, CSS Modules, CSS-in-JS, Tailwind CSS
- Интеграции: Google Maps API, WebSocket, Google Analytics
- Инфраструктура: Docker, CI/CD, Linux
- Инструменты: Git, Jira
Опыт работы
Senior Frontend Developer | КОРУС Консалтинг
Июнь 2023 - настоящее время
Два крупных проекта. Оба про интерфейсы с большим объемом данных и сложные сценарии создания, чтения, изменения и удаления записей.
- До моего решения под каждую новую фичу приходилось адаптировать существующие экраны. Это тянуло за собой правки в разных местах и новые баги. Порог входа был высоким - нужно было держать в голове много состояний и их связи.
- Собрал модель, где эти состояния объединены в одно. Убрал рассинхрон и снизил количество побочных эффектов при изменениях.
- Собрал платформенный слой для таблиц: единая логика загрузки данных, фильтрации, постраничного вывода и редактирования. Это убрало дублирование и выровняло поведение интерфейсов.
- Сделал общий слой состояния для экранов с таблицами. Его начали переиспользовать в разных частях системы.
- Добавил поддержку одновременного редактирования таблиц с обновлением данных в реальном времени. Состояние синхронизируется между клиентами, конфликты обрабатываются на уровне интерфейса.
- Решил проблему рассинхронизации между таблицей и формой. Сейчас редактирование идет через единый источник данных.
- Собрал фреймворк с декларативным описанием таблиц и форм: конфигурации полей, зависимости и валидации. Эти конфигурации переиспользуются между таблицами и формами.
- Участвую в архитектурных решениях и провожу код-ревью. Слежу, чтобы новые сценарии не ломали общую модель.
Senior Frontend Developer | InnRoad
Май 2022 - Май 2023
Облачная система управления отелями: бронирования, платежи, отчетность.
- Делал интерфейсы для бронирований, платежей и отчетности. Много логики вокруг состояний и данных.
- Расширял базовые компоненты под продуктовые сценарии. Где не хватало возможностей - писал свои.
- Проводил код-ревью, писал тесты, занимался рефакторингом.
- Работал в распределенной команде. Общение и обсуждения на английском.
Frontend-разработчик | Emphasoft
Декабрь 2020 - Апрель 2022
Несколько проектов из разных предметных областей.
- Разрабатывал решения для иностранных клиентов. Делал систему для австралийской сети фитнес-клубов: интерфейсы для тренеров и клиентов, работа с данными, пользовательские сценарии.
- Делал проект с серверным рендерингом на сервере через Next.js для американских заказчиков. Собрал модульную архитектуру, реализовал ключевые сценарии и интеграции с серверной частью.
- Писал промежуточный слой между клиентом и сервером для панелей управления и пользовательских систем. Агрегировал данные и формировал программный интерфейс под задачи клиентской части.
- Делал интерфейсы, формы, таблицы, клиентскую логику. Много интеграций с серверной частью.
- Общался с заказчиками, уточнял требования и быстро превращал их в работающие решения.
- Писал тесты, участвовал в проверке кода.
- Запускал проект с нуля и довел до продакшена.
Frontend-разработчик | Adcombo
Январь 2019 - Ноябрь 2020
Адаптивная верстка и интерфейсы на JavaScript.
- Делал адаптивную верстку и интерфейсы на JavaScript.
- Интегрировал сторонние библиотеки, собирал личные кабинеты на React.
- Тут набрал базу и опыт, который потом сильно помог на более сложных проектах.
Фокус
- Двигаюсь в сторону разработки полного цикла. Пишу сервисы на Node.js, использую TDD и DDD. Постепенно углубляюсь в серверную часть и системный дизайн.
- Фокус сейчас - архитектура frontend-приложений и платформенные решения для разработки: общие компоненты интерфейса, слои данных, инструменты для команды.