Горюшкин Артем

Senior Frontend Developer

Воронеж • удаленно
job@gorushkin.com @artyomgorushkin github.com/gorushkin

Обо мне

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-приложений и платформенные решения для разработки: общие компоненты интерфейса, слои данных, инструменты для команды.